const app = getApp(); // 获取全局应用实例
const baseURL = app.globalData.baseURL
const navH = app.globalData.navHeight       // 顶部到时间底部+导航栏(做搜索框了)的总高度 
const navSearch = app.globalData.navSearch  // 导航栏(做搜索框了)的高度

import { requestA } from '../../utils/requestA'

Page({
  data: {
    searchValue: '',
    navH: navH,       // 从全局取来的值: 屏幕顶部到时间底部+搜索框的总高度
    navSearch: navSearch,  // 从全局取来的值: 搜索框的高度
    promoProducts: [],
    isLoading: false,  // 是否正在加载
    baseURL: baseURL,
    showGoldPrice: false, // 控制金价弹窗显示

    products: [],  // 商品
    banners: [],  // 轮播图
    offers: [],   // 特价商品
    page: 1,   // 当前页码
    hasMore: true,  // 是否还有更多数据
  },
  onShow() {
    const app = getApp()
    app.updateTabBarBadge() // 直接调用全局更新方法(购物车角标)
  },
    // 显示金价弹窗
    showGoldPriceModal() {
      this.setData({
        showGoldPrice: true,
      });
    },
  
    // 隐藏金价弹窗
    hideGoldPriceModal() {
      this.setData({
        showGoldPrice: false,
      });
    },
    
  // 页面加载时获取数据,调用后端,请求数据
onLoad() {
    // this.loadData(); 
    this.initLoad(); 
},

async initLoad() {
  try {
    const [products, banners, offers] = await Promise.all([
      this.data.hasMore ? this.loadProducts() : [],  // 商品
      this.data.page == 1 ? this.loadBanners() : this.data.banners,   // 轮播图,只请求一次
      this.data.page == 1 ? this.loadOffers() : this.data.offers,    // 特价,只请求一次
    ])
     this.setData({
      products: products.results,
      banners: banners.results,
      offers: offers.results,
      hasMore: !!products.next,
    })
  } catch (error) {
    console.error('初始化加载失败:', error)
  }
},

// 请求商品列表
async loadProducts() {return requestA(`api/products/?page=${this.data.page}&page_size=10`, 'GET')},

// 请求轮播图  
async loadBanners() {return requestA('api/banners/?page=1&page_size=10', 'GET')},

// 请求特价商品
async loadOffers() {return requestA('api/special-offers/?page=1&page_size=10', 'GET')},


 // 上拉加载更多
async onReachBottom() {
  if (!this.data.hasMore) return
   this.setData({ page: this.data.page + 1 })
  try {
    const res = await this.loadProducts()
    this.setData({
      products: [...this.data.products, ...res.results],
      hasMore: !!res.next
    })
  } catch (error) {
    console.error('加载更多失败:', error)
  }
},

  /* 搜索框输入内容时 */
  onInput(e) {
    console.log(e)
    const value = e.detail.value;
    this.setData({
      searchValue: value,
    });
    // 防抖处理，避免频繁触发搜索
    if (this.timer) clearTimeout(this.timer);
    this.timer = setTimeout(() => {
      this.searchData(value);
    }, 300);
    // 可以在这里添加搜索逻辑
  },

  // 搜索数据
  searchData(keyword) {
    wx.request({
      url: `${baseURL}/api/search/?q=${keyword}`,
      method: 'GET',
      success: (res) => {
        if (res.statusCode === 200) {
          this.setData({
            products: res.data.results,
          });
        }
      },
    });
  },

  /* 点击商品要跳转的详情链接 */
  banTrun(event) {
    const id = event.currentTarget.dataset.item.id;  // 获取点击图片的 id
    wx.navigateTo({
      url: `/pages/detail/detail?id=${id}`, // 将 id 传递过去
    });
  },
  
});
